home *** CD-ROM | disk | FTP | other *** search
- #include <string.h>
- char *domalloc(unsigned long bytes);
- void parsefields(char *str, char **fields, int *numfields, char delim, int max);
-
- unsigned long _allocated = 0;
-
- /* parsefields() changes delim and end of line into '\0' ,
- putting the args into array of char pointers */
-
- void
- parsefields (char *str, char **fields, int *numfields, char delim, int max)
- {
- char *cp;
-
- cp = index (str, '\r');
- if (!cp) cp = index (str, '\n');
- if (cp) *cp = 0;
-
- if (strlen(str) < 1) {
- *numfields = 0;
- return;
- }
-
- fields[0] = str;
- for (*numfields = 1; *numfields < max ; ) {
- fields[*numfields] = index (fields[(*numfields)-1], delim);
- if (fields[*numfields]) {
- *(fields[*numfields]) = 0; /* wipe out delim */
- fields[*numfields] += 1; /* move one char past delim */
- (*numfields)++;
- }
- else
- break;
- }
- }
-
-
- char *
- domalloc(unsigned long bytes)
- {
- char *cp;
-
- if (bytes == 0)
- bytes = 1;
-
- cp = (char *) malloc(bytes);
-
- _allocated += bytes;
- if (!cp)
- printf("Malloc failed to get %lu bytes.\n", bytes);
- return cp;
- }
-
-
- /**************************************************************************/
- /* Count # of occurences of char c in string str */
- int
- strcnt(char *str, char c)
- {
- register int cnt = 0;
-
- while (*str)
- if (*str++ == c)
- cnt++;
- return cnt;
- }
-
- /**************************************************************************/
- /* tolower a string, returning the length of the string */
- int strlower(char *str)
- {
- int cnt = 0;
-
- while (*str) {
- if (isupper(*str))
- *str = tolower(*str);
- str++, cnt++;
- }
- return cnt;
- }
-
-
- substi_char (char *istr, char *ostr, char ch_frm, char ch_to)
- /* Convert ch_frm into ch_to where ever it occurs in istr, write
- results in ostr */
- {
- char *cp;
-
- strcpy (ostr, istr); /* copy istr to ostr */
- for (cp = ostr; *cp; cp++) {
- if (*cp == ch_frm)
- *cp = ch_to;
- }
- }
-